(function () {
    class Barrage {
        constructor(id) {
            // 获取目标容器
            this.container = document.querySelector('#' + id);

            // 初始化容器样式
            if (!this.container) {
                console.error("Container not found");
                return;
            }

            if (this.container.style.position === '' || this.container.style.position === 'static') {
                this.container.style.position = 'relative';
            }
            this.container.style.overflow = 'hidden';

            // 获取容器尺寸
            const rect = this.container.getBoundingClientRect();
            this.width = rect.width;
            this.height = rect.height;
        }

        // 发射弹幕
        shoot(text) {
            if (!this.container) return;

            // 创建弹幕元素
            const div = document.createElement('div');
            div.style.position = 'absolute';
            div.style.left = this.width + 'px'; // 从容器右侧开始
            div.style.top = Math.random() * (this.height - 20) + 'px'; // 随机高度
            div.style.whiteSpace = 'nowrap';
            div.style.color = '#' + Math.floor(Math.random() * 16777215).toString(16); // 随机颜色
            div.innerText = text;

            this.container.appendChild(div);

            // 动画移动弹幕
            const speed = Math.random() * 2 + 1; // 随机速度
            const move = () => {
                const left = parseFloat(div.style.left);
                if (left + div.offsetWidth < 0) {
                    // 弹幕离开屏幕时移除
                    this.container.removeChild(div);
                } else {
                    div.style.left = (left - speed) + 'px';
                    requestAnimationFrame(move);
                }
            };
            move();
        }
    }

    // 创建弹幕实例
    const barrage = new Barrage('content');

    // 自动发射弹幕的内容
    const textList = [
        '这网站好牛呀！',
        '这技术栈真强大！',
        '简直就是开发者的天堂！',
        '学了这些，简直无敌了！',
        'Java全家桶，牛逼！',
        '你们的网站简直太棒了！',
        '技术帝国，Java全开花！',
        '这框架用得飞起！',
        '我的 Java 代码就是这么溜！',
        '这个技术栈让开发更高效！',
        '牛逼的开发者必备技能！'
    ];
    let index = 0;

    // 定时发送弹幕
    setInterval(() => {
        if (barrage) {
            barrage.shoot(textList[index]); // 发射当前索引的弹幕
            index = (index + 1) % textList.length; // 循环索引
        }
    }, 1000); // 每隔1秒发射一条弹幕

    // 手动发送弹幕
    document.querySelector('#send').onclick = () => {
        const input = document.querySelector('#text');
        const text = input.value.trim();
        if (text && barrage) {
            barrage.shoot(text);
            input.value = ''; // 清空输入框
        }
    };
})();
